package leetcode_1100;

import java.util.PriorityQueue;

/**
 *@author 周杨 
 *LastStoneWeight_1046 给一个数组 每次选最大的两个元素 它们如果相等就消除 否则留下差值 问最后留下的值
 *describe:常规题 用堆
 *2019年5月24日 上午11:16
 */
public class LastStoneWeight_1046 {
	public int lastStoneWeight(int[] stones) {
        PriorityQueue<Integer> queue = new PriorityQueue<Integer>((o1,o2)->o2-o1);
        for(int i:stones) queue.offer(i);
        while(queue.size() > 1) {
        	int first = queue.poll();
        	int second = queue.poll();
        	if(first != second) {
        		queue.offer(first-second);
        	}
        }
        return queue.size()==1?queue.poll():0;
    }
}
